# 导入必要的模块
from http.server import HTTPServer, BaseHTTPRequestHandler
import json


# 定义支持POST请求的处理器类
class PostHandler(BaseHTTPRequestHandler):
    # 处理GET请求的方法
    def do_GET(self):
        # 发送HTTP 200状态码
        self.send_response(200)
        # 设置响应内容类型为HTML
        self.send_header("Content-type", "text/html")
        # 结束头部发送
        self.end_headers()

        # 创建包含表单的HTML页面
        html_content = """
        <html>
        <head><title>POST测试</title><meta charset="UTF-8"></head>
        <body>
            <h1>POST请求测试</h1>
            <form method="POST">
                <input type="text" name="message" placeholder="请输入消息">
                <button type="submit">发送</button>
            </form>
        </body>
        </html>
        """

        # 将HTML内容编码并写入响应
        self.wfile.write(html_content.encode("utf-8"))

    # 处理POST请求的方法
    def do_POST(self):
        # 获取请求体的长度
        content_length = int(self.headers["Content-Length"])
        # 读取POST数据
        post_data = self.rfile.read(content_length)

        # 发送HTTP 200状态码
        self.send_response(200)
        # 设置响应内容类型为JSON
        self.send_header("Content-type", "application/json")
        # 结束头部发送
        self.end_headers()

        # 创建响应数据字典
        response = {"status": "成功", "received_data": post_data.decode("utf-8")}

        # 将响应数据转换为JSON并编码写入
        self.wfile.write(json.dumps(response).encode("utf-8"))


# 定义服务器地址和端口
server_address = ("", 8000)
# 创建HTTP服务器实例
httpd = HTTPServer(server_address, PostHandler)

# 打印服务器启动信息
print("POST服务器运行在 http://localhost:8000")
# 启动服务器
httpd.serve_forever()
